package cn.yhjz.generator.service.impl;

import cn.yhjz.common.Pager;
import cn.yhjz.generator.entity.SysGenModelProp;
import cn.yhjz.generator.service.ISysGenModelPropService;
import cn.yhjz.generator.vo.SysGenModelPropVo;
import cn.yhjz.generator.mapper.SysGenModelPropMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional(rollbackFor = {Exception.class})
public class SysGenModelPropServiceImpl implements ISysGenModelPropService {

    @Autowired
    private SysGenModelPropMapper sysGenModelPropMapper;


    @Override
    public Pager getPage(Long currentPage, Long pageSize, SysGenModelProp sysGenModelProp) {
        Pager pager = new Pager();
        Long count = sysGenModelPropMapper.getPageCount(sysGenModelProp);
        Long pageOffset = (currentPage - 1) * pageSize;
        List<SysGenModelPropVo> records = sysGenModelPropMapper.getPage(pageOffset, pageSize, sysGenModelProp);
        pager.setRows(records);
        pager.setCurrentPage(currentPage);
        pager.setPageSize(pageSize);
        pager.setTotalPageCount(count);
        return pager;
    }

    @Override
    public SysGenModelProp insert(SysGenModelProp sysGenModelProp) {
        int res = sysGenModelPropMapper.insert(sysGenModelProp);
        if(res > 0){
            return sysGenModelProp;
        }else{
            return null;
        }
    }

    @Override
    public List<SysGenModelProp> select(SysGenModelProp sysGenModelProp) {
        return sysGenModelPropMapper.select(sysGenModelProp);
    }

    @Override
    public List<SysGenModelPropVo> selectVo(SysGenModelProp sysGenModelProp) {
        return sysGenModelPropMapper.selectVo(sysGenModelProp);
    }

    @Override
    public SysGenModelProp selectOne(SysGenModelProp sysGenModelProp) {
        return sysGenModelPropMapper.selectOne(sysGenModelProp);
    }

    @Override
    public SysGenModelPropVo selectOneVo(SysGenModelProp sysGenModelProp) {
        return sysGenModelPropMapper.selectOneVo(sysGenModelProp);
    }

    @Override
    public SysGenModelPropVo selectById(Long id) {
        return sysGenModelPropMapper.selectById(id);
    }

    @Override
    public int deleteById(Long id) {
        return sysGenModelPropMapper.deleteById(id);
    }

    @Override
    public int updateByIdWithNull(SysGenModelProp sysGenModelProp) {
        return sysGenModelPropMapper.updateByIdWithNull(sysGenModelProp);
    }

    @Override
    public int updateById(SysGenModelProp sysGenModelProp) {
        return sysGenModelPropMapper.updateById(sysGenModelProp);
    }

    @Override
    public int update(SysGenModelProp entity, SysGenModelProp param) {
        return sysGenModelPropMapper.update(entity, param);
    }

    @Override
    public int updateWithNull(SysGenModelProp entity, SysGenModelProp param) {
        return sysGenModelPropMapper.updateWithNull(entity, param);
    }
}
